package top.wyix.framework.websocket.core.listener;

import org.springframework.web.socket.WebSocketSession;
import top.wyix.framework.websocket.core.message.JsonWebSocketMessage;

/**
 * WebSocket 消息监听器接口
 *
 * 目的：前端发送消息给后端后，处理对应 {@link #getType()} 类型的消息
 *
 * @param <T> 泛型，消息类型
 * @author wangdx
 */
public interface WebSocketMessageListener<T> {
    /**
     * 处理消息
     *
     * @param session Session
     * @param message 消息
     */
    void onMessage(WebSocketSession session, T message);

    /**
     * 获得消息类型
     *
     * @return 消息类型
     * {@link JsonWebSocketMessage#getType()}
     */
    String getType();
}
